Gradle হলো একটি শক্তিশালী Build Automation Tool, যা Java, Groovy, Kotlin, এবং অন্যান্য ভাষার প্রজেক্টগুলো সহজে বিল্ড, ডিপ্লয় এবং ম্যানেজ করতে সহায়তা করে। Gradle এর ফ্লেক্সিবল এবং অত্যাধুনিক স্ট্রাকচার একে অত্যন্ত জনপ্রিয় করেছে। Maven এবং Ant এর মতো অন্যান্য বিল্ড টুলের তুলনায় Gradle অনেক বেশি দ্রুত এবং কাস্টমাইজেবল।
Gradle এর DSL (Domain-Specific Language) সিনট্যাক্সের জন্য Groovy বা Kotlin ব্যবহার করা হয়, যা বিল্ড স্ক্রিপ্ট তৈরি করা এবং পড়া সহজ করে তোলে।
Gradle ইনস্টল করতে, Gradle এর অফিসিয়াল সাইট থেকে Gradle ডাউনলোড করে PATH এ যুক্ত করতে হবে অথবা SDKMAN ব্যবহার করে Gradle ইনস্টল করা যায়।
sdk install gradle
ইনস্টলেশন সম্পন্ন হলে নিচের কমান্ডটি চালিয়ে ইনস্টলেশন পরীক্ষা করা যেতে পারে:
gradle -v
Gradle বিল্ড স্ক্রিপ্ট সাধারণত build.gradle
নামে থাকে এবং এটি Groovy বা Kotlin DSL এ লেখা হয়। Gradle স্ক্রিপ্টে বিভিন্ন টাস্ক এবং ডিপেনডেন্সি সংজ্ঞায়িত করা হয় যা প্রজেক্ট বিল্ডের জন্য প্রয়োজন।
// build.gradle
plugins {
id 'java'
}
group 'com.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework:spring-core:5.3.9'
testImplementation 'junit:junit:4.13.2'
}
test {
useJUnitPlatform()
}
Gradle এর মূল বিল্ডিং ব্লক হলো টাস্ক। প্রতিটি টাস্কে একটি নির্দিষ্ট কাজ সম্পন্ন হয়। উদাহরণস্বরূপ, compileJava
টাস্ক সোর্স কোড কম্পাইল করে এবং test
টাস্ক টেস্ট চালায়।
Gradle এ কাস্টম টাস্ক তৈরি করা খুবই সহজ।
task hello {
doLast {
println 'Hello, Gradle!'
}
}
এই টাস্কটি gradle hello
কমান্ড ব্যবহার করে চালানো যাবে এবং এটি "Hello, Gradle!" প্রিন্ট করবে।
Gradle এর ডিপেনডেন্সি ম্যানেজমেন্ট সিস্টেম অত্যন্ত শক্তিশালী। Gradle Maven Central, JCenter, এবং Ivy রিপোজিটরি থেকে ডিপেনডেন্সি নিয়ে আসতে পারে।
dependencies {
implementation 'org.springframework:spring-core:5.3.9'
testImplementation 'junit:junit:4.13.2'
}
লোকাল লাইব্রেরি ব্যবহার করতে files()
মেথড ব্যবহার করা যায়।
dependencies {
implementation files('libs/local-library.jar')
}
Gradle এর মাধ্যমে একটি মূল প্রজেক্টে একাধিক সাব-প্রজেক্ট বিল্ড করা যায়। প্রতিটি সাব-প্রজেক্টের জন্য আলাদা বিল্ড স্ক্রিপ্ট থাকা সম্ভব এবং মূল প্রজেক্ট তাদেরকে সংহত করতে পারে।
প্রথমে প্রজেক্টের মূল settings.gradle
ফাইলে সব সাব-প্রজেক্ট উল্লেখ করতে হবে।
// settings.gradle
rootProject.name = 'MultiProjectExample'
include 'subproject1', 'subproject2'
প্রতিটি সাব-প্রজেক্টের জন্য আলাদা build.gradle
ফাইল থাকা উচিত, যাতে তাদের নিজস্ব টাস্ক এবং ডিপেনডেন্সি থাকে।
// subproject1/build.gradle
plugins {
id 'java'
}
dependencies {
implementation project(':subproject2')
}
Gradle কিছু বিল্ট-ইন টাস্ক সরবরাহ করে, যেমন build
, clean
, test
, এবং assemble
। এই টাস্কগুলির মাধ্যমে বিভিন্ন বিল্ড পর্যায় সম্পন্ন করা যায়।
Gradle Wrapper ব্যবহার করে প্রজেক্টে নির্দিষ্ট ভার্সনের Gradle ইনস্টল করা যায় এবং এটি নতুন ডেভেলপারদের সিস্টেমে Gradle ইনস্টলেশন ছাড়াই প্রজেক্ট রান করার সুযোগ দেয়।
gradle wrapper
এই কমান্ডটি চালালে প্রজেক্টে gradlew
এবং gradlew.bat
নামে দুটি ফাইল তৈরি হবে, যা ক্রস-প্ল্যাটফর্ম Gradle কমান্ড হিসাবে কাজ করবে।
./gradlew build # Linux or Mac
gradlew build # Windows
Gradle Wrapper নির্দিষ্ট ভার্সনের Gradle ব্যবহার করে প্রজেক্ট বিল্ড করতে সক্ষম।
Gradle একটি শক্তিশালী Build Automation টুল, যা সহজেই Java, Groovy, Kotlin এবং অন্যান্য ভাষার প্রজেক্ট বিল্ড করতে সহায়তা করে। Gradle এর সাহায্যে ডিপেনডেন্সি ম্যানেজমেন্ট, টাস্ক তৈরি, মাল্টি-প্রজেক্ট বিল্ড, এবং বিল্ড কনফিগারেশন খুবই সহজে করা যায়। Gradle Wrapper নতুন ডেভেলপারদের জন্য ইনস্টলেশন ছাড়াই প্রজেক্ট রান করার সুবিধা দেয়। এইসব বৈশিষ্ট্যের কারণে Gradle Build Automation এর জন্য অত্যন্ত জনপ্রিয় এবং কার্যকরী একটি টুল।
common.read_more